Systems and methods for cloud-based application access to resources

ABSTRACT

Systems and methods which facilitate access to computing resources by cloud-based applications are described. Embodiments enable cloud-based applications to provide output to and/or obtain input from computing resources, such as printers, scales, scanners, and storage devices, for performing various functions. In operation according to embodiments, a user agent client application is executed by computing equipment in communication with a computing resource to which access is to be provided to one or more cloud-based applications. Although embodiments implement a user interface client application which is separate from a user agent client application, tight integration between a user interface client application and user agent client application may be provided. Embodiments not only facilitate operation whereby a cloud-based application is enabled to provide output to and/or obtain input from computing resources, but also facilitate remote and/or shared client interaction with such computing resources.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 14/753,918 entitled “SYSTEMS AND METHODS FOR CLOUD-BASEDAPPLICATION ACCESS TO RESOURCES,” filed Jun. 29, 2015, issued Nov. 13,2018 as U.S. Pat. No. 10,129,172, which claims benefit of priority toU.S. provisional patent application Ser. No. 62/082,393 entitled“SYSTEMS AND METHODS FOR CLOUD-BASED APPLICATION ACCESS TO RESOURCES,”filed Nov. 20, 2014, the disclosures of which are hereby incorporatedherein by reference in their entirety. The present application isrelated to co-pending and commonly assigned U.S. patent application Ser.No. 14/642,534 entitled “SYSTEMS AND METHODS IMPLEMENTING AUTOMATEDSHIPMENT STATUS TRACKING,” filed Mar. 9, 2015, and Ser. No. 14/711,618entitled “SYSTEMS AND METHODS FOR MANAGING AND/OR FACILITATING RETURNSHIPMENT OF ITEMS,” filed May 13, 2015, the disclosures of which arehereby incorporated herein by reference in their entirety.

TECHNICAL FIELD

The invention relates generally to facilitating access to resources bycloud-based applications and, more particularly, to enabling cloud-basedapplications to provide output to and/or obtain input from computingresources, such as printers, scales, scanners, and storage devices, forperforming various functions, such as providing shipping relatedfunctionality.

BACKGROUND

The use of various forms of computing equipment to automate or otherwiseperform a number of tasks has become widespread. With the proliferationof processor-based platforms, such as personal computers (PCs), tabletdevices, smart phones, personal digital assistants (PDAs), and servers,capable of executing instruction sets for providing specialized orgeneralized functionality, such as word processing, accounting, documentgeneration and management, printing, data communication, and imagecapture, generation, and management, the use of such computing equipmenthas become nearly ubiquitous in both business as well as personalsettings. One example of functionality that is provided through the useof such computing equipment is the automation of tasks associated withthe shipment of items, including the management of item orders, managingthe picking and packing of items for order fulfillment, generation ofinvoices, packing slips, manifests, shipping labels, and postage orother prepaid shipping indicia, and tracking of shipment of itemsthrough a shipping service provider, as provided by the SHIPSTATIONshipping management system provided by Auctane LLC of Austin Tex.

A number of different fundamental configurations have been implementedwith respect to the system implementations for providing the variousfunctionality. For example, localized deployment of one or moreapplications, wherein the application(s) providing the instructions forimplementing various tasks is stored and executed by computing equipmentlocal to the user (e.g., a user device, such as a PC, tablet device,smart phone, or PDA), may be utilized for providing desiredfunctionality. Alternatively, cloud-based deployment of one or moreapplications, wherein the application(s) providing the instructions forimplementing various tasks is stored and executed by computing equipmentdisposed in a network “cloud” (e.g., a group of servers remote from theuser), may be utilized for providing desired functionality. Each suchconfiguration, however, has advantages and disadvantages associatedtherewith.

Configurations implementing localized deployment of applications provideadvantages with respect to the applications ability to interoperate orotherwise interact with peripherals local to the user. For example, inperforming one or more tasks of the functionality enabled by thelocalized application it may be desirable to provide output to and/orobtain input from one or more computing resources, such as printers,scales, scanners, and storage devices, disposed local to the user orotherwise under control of or accessible by the user. As a specificexample, the localized application may comprise a shipping managementprogram whereby a user may wish to have the weight of an item to beshipped input by an electronic scale and/or a shipping label printed inassociation with shipping related functionality provided by theapplication. In a localized application configuration, the applicationgenerally has direct access to such computing resources, such as todirectly communicate with and control the operation of those resources,thereby facilitating user interaction with the application which resultsin the desired operation of the resources.

However, such configurations implementing localized deployment ofapplications have disadvantages associated with the deployment andmaintenance of the localized applications. For example, the user orother user entity must obtain and maintain computing equipment (e.g.,processor capability, memory capacity, etc.) sufficient to store andexecute the localized application(s). Moreover, the user or other userentity must manage and monitor the lifecycle of the application(s)(e.g., install and configure the application, maintain version control,obtain and install updates and patches, coordinate resourceinteroperability maintenance, etc.). Such management and maintenanceassociated with localized applications can be quite expensive in termsof monetary costs, time, and computing resources.

Accordingly, configurations implementing cloud-based deployment ofapplications have become quite popular in recent years. Such cloudapplication deployments provide advantages with respect to thedeployment and maintenance of the applications. For example, the burdenfor obtaining and maintaining computing equipment (e.g., processorcapability, memory capacity, etc.) sufficient to store and execute theapplication(s) is largely placed upon the cloud application provider. Auser of the cloud application typically needs only a relatively modestlyequipped client system (e.g., processor-based system executing abrowser, such as INTERNET EXPLORER, GOOGLE CHROME, or FIREFOX, or thinclient application) in order to interface with and implementfunctionality of the cloud application. Moreover, the user is relievedof the need to manage or monitor the lifecycle of the application(s).Instead, the cloud application provider generally installs andconfigures the application, maintains version control, obtains andinstalls updates and patches, coordinates resource interoperabilitymaintenance, etc. Accordingly, the users are enabled to enjoy thevarious upgrades, enhancements, and patches to the applications as theyare put online by the cloud application provider, without the userhaving to maintain or monitor the application lifecycle. Thus, users ofsuch configurations implementing cloud-based deployment of applicationsare typically saved significant expenses in terms of monetary costs,time, and computing resources.

Nevertheless, such configurations implementing cloud-based deployment ofapplications have disadvantages associated therewith. For example, asdiscussed above, it may be desirable to provide output to and/or obtaininput from one or more computing resources disposed local to the user orotherwise under control of or accessible by the user in performing oneor more tasks of the functionality enabled by the applications. In acloud-based application configuration, the cloud application generallydoes not have direct access to such computing resources, and thus cannotdirectly communicate with and control the operation of those resources.For example, security features of browsers inhibit direct interactionwith or control of various resources by a cloud application, such as toprevent unauthorized or malicious use of such resources (e.g., theunsolicited printing of coupons or advertising media when a userinterfaces with a webpage, the harvesting of personal or sensitive databy a webserver, etc.). Although providing desired security with respectto the unauthorized or malicious use of resources, such inhibitingdirect interaction with or control of resources by the cloud applicationresults in an inability by the cloud application to directly implementparticular user interaction which results in desired operation of theresources. For example, if a user wishes to print to a local printerfrom a cloud application using a browser client, the user must controlthe cloud application to download an electronic instance of the desireddocument (e.g., as a portable document format (PDF) file) to the browserand then utilize printing functionality of the browser itself (alocalized application) to print the document. This operation requiresmultiple steps, including steps which are external to the cloudapplication.

One attempt at a solution to the inability to print directly from acloud-based application has been made in the form of the GOOGLE CLOUDPRINT product. GOOGLE CLOUD PRINT provides a cloud server based solutionwhich is integrated with the user's browser to connect printers to theweb, whereby the printers are made available to applications via aGOOGLE CLOUD PRINT server and web browser in communication with theprinter. Although enabling a cloud application to ultimately print to auser's printer, the document to be printed must first be rendered as aPDF file, transmitted to the GOOGLE CLOUD PRINT server, and thenretransmitted to the web browser which is in communication with theprinter. This repeated transmission of the document print file canresult in appreciable delay in printing of the document, particularlywhen the document is large or complicated, and thus does not provide anadequate solution for all situations.

Another solution has been to implement a light server at the user devicefor enabling printing. FIG. 1 shows an implementation such a lightserver. The light server configuration provides a relatively smallapplication (e.g., smaller than an application providing a fullyfeatured server configuration) which provides operation for, oremulating, certain functionality of a server.

User interface client application 121 is natively adapted to interactwith a server (e.g., web server), such as using the hypertext transferprotocol (HTTP). Communication link 101 between user interface clientapplication 121 and cloud-based application 111 may thus provide a HTTPcommunication link. Light server 122 provides an interface emulatingthat of a server for which user interface client application 121 isadapted to communicate (e.g., providing a HTTP interface) forinteracting with user interface client application 121 and cloud clientapplication 121A to control printer 130. Accordingly, communication link102 between user interface client application 121 and light server 122may thus provide a HTTP communication link. Light server 122 mayimplement an application programming interface (API) or other suitableinterface to enable communication link 103 between light server 122 andprinter 130. Light server 122 interacts with cloud-based application 111to receive data to be provided to printer 130. Accordingly,communication link 104 between light sever 122 and cloud-basedapplication 111 may provide a HTTP communication link.

In operation, a user may interact with cloud-based application 111 usingcloud client application 121A hosted by user interface clientapplication 121 in order to perform desired functionality supported bysystem 100. Where the interaction initiates tasks involving the use ofprinter 130, cloud client application 121A may direct commands (e.g.,requests, control messages, etc.) to light server 122.

It should be appreciated that it may be desirable to implement securitywith respect to the communications transmitted external to user device120, such as to prevent unauthorized monitoring of the communications,to avoid fraudulent use of the cloud-based application, etc.Accordingly, communication link 101 and/or communication link 104between user device 120 and cloud-based application 111 may beconfigured to provide requisite security, such as by implementing ahypertext transfer protocol secure (HTTPS) communications protocol. Theimplementation of such secure communications protocol may employ the useof appreciable resources, such as memory and computing cycles, inobfuscating and de-obfuscating (e.g., encrypting and unencrypting) thedata placed on the secure communication link. Accordingly, in additionto it typically not being necessary to secure communications internal touser device 120, it may not be practical or possible to implement suchsecure communications protocols with respect to communication link 102between light server 122 and cloud client application 121A. For example,when implementing a secure sockets layer (SSL) protocol for providingsecure communications the distribution of a “server identificationcertificate” (or SSL certificate) is typically utilized. Servers aregenerally required to keep the “private” portion of the SSL certificateprotected and secret, while distributing the “public” portion of the SSLcertificate to any requesting party. However, distributing the full SSLcertificate with a client application (here, the light server executableon the user device) would breach that security by effectively making the“private” portion of the SSL certificate public. Moreover, light server122 may require appreciably more computer code to implement such securecommunications protocols, thus rendering the application less “light.”Likewise, the use of such secure communications protocols at lightserver 122 and user interface client application 121 to securecommunication link 102 may consume considerable processing power of userdevice 120. Accordingly, although such secure communication protocolsmay be implemented with respect to communication link 101 and/orcommunication link 104, configurations may not implement a securecommunication protocol with respect to communication link 102.

As data security issues continue to evolve, changes in theimplementation of security techniques by user interface clientapplications, such as web browsers, are implemented. In a recentiteration of such security technique changes, many web browsers haveimplemented procedures to prohibit simultaneously maintaining bothsecure and unsecure communication links with respect to a same cloudclient application. Essentially, if the application is running in asecure “SSL” mode in the browser, then it must only communicate withother “secure” servers as per these recently introduced securityrestrictions. Accordingly, instances of light server 122 may be requiredto utilize secure communication protocols with respect to communicationlink 102 where secure communication protocols are utilized with respectto communication link 101. Such an implementation may result in anundesirable or impractical configuration of the light server and/orundesired performance by user device 120.

BRIEF SUMMARY

The present invention is directed to systems and methods whichfacilitate access to resources by cloud-based applications. Embodimentsof the invention enable cloud-based applications to provide output toand/or obtain input from computing resources, such as printers, scales,scanners, and storage devices, for performing various functions, such asproviding shipping related functionality.

In operation according to embodiments of the invention, a user agentclient application (embodiments of which are referred to herein as a“Connect Workstation”) is executed by computing equipment incommunication with a resource to which access is to be provided to oneor more cloud-based applications. For example, a user's PC havingvarious resources, such as a printer, scanner, and scale, coupledthereto may execute an instance of Connect Workstation, whereby ConnectWorkstation interacts with one or more cloud-based application to enablethe cloud-based application to output to and/or obtain input from one ormore of the resources. In operation, a user may interact with thecloud-based application via a user client interface application, such asa well-known web browser interface (e.g., using a cloud clientapplication or applet operable within the web browser). However,interaction between the cloud-based application and resources at theuser's PC need not be through that client interface platform, insteadbeing managed through the user agent client application. That is,embodiments of the invention provide a localized application (e.g., theConnect Workstation) that has direct access to computing resources, todirectly communicate with and control the operation of those resources,whereby through cooperation of the localized application and cloud-basedapplication the cloud-based application is enabled to access and utilizethe resources.

Operation according to embodiments provides for communication of thedata (e.g., print documents, scan files, scale data, etc.) to/from thevarious resources between the cloud-based application and the user agentclient application (e.g., Connect Workstation) without transmission tothe user interface client application (e.g., web browser) or anintermediate server (e.g., a cloud print server). Such embodimentsfacilitate efficient communication of the data and rapid performance oftasks involving the resources (e.g., printing, scanning, weighing,etc.).

Although embodiments implement a user interface client application(e.g., web browser) which is separate from a user agent clientapplication (e.g., Connect Workstation), tight integration between auser interface client application and user agent client application maybe provided. Communication may be provided between the user interfaceclient application and one or more user agent client application. Forexample, a user may be provided control of various resources through theuser interface client application using the aforementioned communicationwith the user agent client application. Additionally or alternatively, auser may be provided information regarding the various resources, suchas the operational state of a resource (e.g., online/offline, requiresattention, toner low, paper jam, etc.), the status of a task (e.g.,printing in process/complete, scanning in process/complete, etc.),and/or the like. Such communication may be direct between the userinterface client application and the user agent client application ormay be indirect, such as via a cloud-based application in communicationwith both the user interface client application and user agent clientapplication. Such integration between a user interface clientapplication and a user agent client application may provide operationwith respect to a cloud-based application which emulates direct accessto computing resources by the cloud-based application or otherwiseappears to the user as if the cloud-based application is directlycommunicating with and controlling the operation of the resources. Forexample, a user may utilize the user interface client application tointeract with the cloud-based application and select a task, such asprinting a shipping label, which invokes operation of a resource, suchas a local printer, without the user interface client application itselfactually engaging in or otherwise controlling the resource operation(e.g., the print control of a web browser, and thus the security aspectthereof, is not invoked).

Embodiments which implement particular configurations of a user agentclient application which is separate from a user interface clientapplication not only facilitate operation whereby a cloud-basedapplication is enabled to provide output to and/or obtain input fromcomputing resources, but also facilitates robust user and/or clientinteraction with such computing resources. For example, not only is auser at the user's PC to which a particular resource is connectedenabled to utilize a cloud-based application for tasks as if thecloud-based application has direct control of the local resource, but sotoo is the user enabled to utilize the cloud-based application for tasksemploying any resources in communication with a user agent clientapplication is in communication and for which the user is authorized. Asone example, a companywide network of resources may be made available toauthorized users thereof, irrespective of the physical locations of theresources and the particular processor-based platform utilized by auser. Moreover, using a user agent client application according toembodiments of the invention, various configurations of processor-basedplatforms (e.g., tablet devices, smart phones, and PDAs) whichthemselves may not have the desired resource coupled thereto, and maynot be capable of directly coupling to such resources, may be utilizedby users in performing tasks employing the resources.

The foregoing has outlined rather broadly the features and technicaladvantages of the present invention in order that the detaileddescription of the invention that follows may be better understood.Additional features and advantages of the invention will be describedhereinafter which form the subject of the claims of the invention. Itshould be appreciated by those skilled in the art that the conceptionand specific embodiment disclosed may be readily utilized as a basis formodifying or designing other structures for carrying out the samepurposes of the present invention. It should also be realized by thoseskilled in the art that such equivalent constructions do not depart fromthe spirit and scope of the invention as set forth in the appendedclaims. The novel features which are believed to be characteristic ofthe invention, both as to its organization and method of operation,together with further objects and advantages will be better understoodfrom the following description when considered in connection with theaccompanying figures. It is to be expressly understood, however, thateach of the figures is provided for the purpose of illustration anddescription only and is not intended as a definition of the limits ofthe present invention.

BRIEF DESCRIPTION OF THE DRAWINGS

For a more complete understanding of the present invention, reference isnow made to the following descriptions taken in conjunction with theaccompanying drawings, in which:

FIG. 1 shows an implementation of a light server solution for providingprinting;

FIG. 2A shows a cloud-based system adapted to provide access tocomputing resources according to embodiments of the invention;

FIG. 2B shows detail with respect to a user device configuration of thecloud-based system of FIG. 2A according to embodiments of the invention;

FIG. 3 shows an implementation wherein a user agent client applicationis implemented as a Connect Workstation according to embodiments of theinvention; and

FIG. 4 shows a high level flow diagram of operation to provide access tocomputing resources according to embodiments of the invention.

DETAILED DESCRIPTION

FIG. 2A shows an embodiment of cloud-based system 200 adapted accordingto concepts of the present invention. System 200 of the illustratedembodiment includes network 210 in which cloud-based application 211 ispresent. It should be appreciated that although a single cloud-basedapplication is shown for simplicity, embodiments of a cloud-based systemmay comprise any number of cloud-based applications, wherein suchcloud-based applications may be similar and/or different with respect toany other cloud-based application.

Cloud-based application 211 comprises a cloud-based deployment of anapplication which stored and executed by computing equipment disposed inthe “cloud” of network 210. Accordingly, cloud-based application 211 maycomprise computer executable code executing on one or moreprocessor-based systems (e.g., web servers) deployed in network 210.Cloud-based application 211 may, for example, comprise a systemproviding various desired functionality such as in the form of softwareas a service (SaaS), infrastructure as a service (IaaS), platform as aservice (PaaS), unified communications as a service (UCaaS), etc.

Cloud based application 211 may, for example, comprise a shippingmanagement system operable to provide the automation of tasks associatedwith the shipment of items, including the management of item orders,managing the picking and packing of items for order fulfillment,generation of invoices, packing slips, manifests, shipping labels, andpostage or other prepaid shipping indicia, and/or tracking of shipmentof items through a shipping service provider. In an exemplaryembodiment, a shipping management system configuration of cloud basedapplication 211 may be operable to provide various functionalityassociated with the processing and shipment of various items. Such ashipping management system of embodiments may, for example, providefunctionality for the processing and shipment of various items by amerchant or other shipper to a purchaser or other recipient as well asfor the processing and return shipment of such items by the purchaser orother recipient to the merchant or other original shipper. Suchfunctionality provided according to embodiments of a shipping managementsystem includes for the automation of tasks associated with the shipmentof items, including the management of item orders, managing the pickingand packing of items for order fulfillment, generation of invoices,packing slips, manifests, shipping labels, and postage or other prepaidshipping indicia, and/or tracking of shipment of items through ashipping service provider. For example, a shipping management system maycomprise some or all of the functionality of a shipping managementsystem, such as the SHIPSTATION shipping management system provided byAuctane LLC of Austin Tex., adapted to further provide for the returnshipment of items according to the concepts herein. Additionally,embodiments of a shipping management system may provide functionalityfor managing return requests, processing of return requests, authorizingreturns, tracking of the processing of a return request, tracking ofreturn shipments, generating return shipping labels, generating returnpostage indicia, and/or the like. In particular, embodiments of ashipping management system provide a multi-carrier shipping managementsystem capable of providing shipping functionality (e.g., rating,shipping indicia generation, packing list printing, shipping labelprinting, tracking, carrier pickup request, manifest printing, accountmanagement and payment, etc.) for a plurality of carriers or shippingservice providers (e.g., the United States Postal Service (USPS), UnitedParcel Service (UPS), Federal Express, DHL, local couriers, etc.),thereby providing a multi-carrier shipping management platform.

It should be appreciated that the “cloud” environment associated withsystem 200, and network 210 thereof, may comprise various applications,systems (e.g., server systems 232 and 233), devices (e.g., storage 234),etc. in addition to cloud-based application 211, as may be utilized byor otherwise operable with cloud-based application 211 for providingdesired functionality. For example, embodiments of system 200 whereincloud-based application 211 comprises a shipping management system maycomprise one or more postage system (e.g., as server system 232), one ormore shipping service provider system (e.g., as server system 233), andor one or more databases (e.g., as storage 234), such as may be utilizedby or otherwise operable with the shipping management system forproviding shipping functionality (e.g., multi-carrier (multiple shippingservice provider) and/or multi-channel (multiple commerce channelshipping functionality).

Network 210 of the illustrated embodiment provides communication linksfacilitating the communication between various systems and components ofsystem 200, such as storage 234, server systems 232 and 233, userdevices 220A-220D, and cloud-based application 211. Accordingly, network210 may comprise any number of network configurations, such as theInternet, an intranet, the public switched telephone network (PSTN), alocal area network (LAN), a metropolitan area network (MAN), a wide areanetwork (WAN), a cellular network, a wireless network, a cabletransmission network, and/or the like.

User devices 220A-220D of embodiments comprise processor-based systems(e.g., a terminal in the form of one or more computer, workstation,kiosk terminal, portable processor-based device, etc.) operable undercontrol of one or more instruction set (e.g., software, firmware,applet, etc.) adapted to cooperate with cloud-based application 210 toprovide desired functionality, such as the aforementioned exemplaryshipping management functionality. User devices 220A and 220B of theillustrated embodiment, for example, comprise computer systems having aprocessor, memory, and input/output to enable interaction withcloud-based application 211 for providing at least some portion offunctionality available through operation of system 200. User device220C of the illustrated embodiment, however, comprises a tablet devicehaving a processor, memory, and input/output to enable interaction withcloud-based application 211 for providing at least some portion offunctionality available through operation of system 200. User device220D of the illustrated embodiment comprises a smart phone having aprocessor, memory, and input/output to enable interaction withcloud-based application 210 for providing at least some portion offunctionality available through operation of system 200. Thecommunication links between the user devices and the other nodes ofsystem 200 (e.g., cloud-based application 211, computing resources230A-230D, and other ones of user devices 220A-220D) may comprise wiredlinks (e.g., as illustrated for user devices 220A and 220B) or wirelesslinks (e.g., as illustrated for user devices 220C and 220D), as well ascombinations thereof. It should be appreciated that, although theillustrated embodiment shows a representative example of the number andconfiguration of user devices as may be utilized with respect to system200, the concepts of the present invention are not limited toapplication to the particular number or configuration of user devicesshown.

A postage system configuration of server system 232 may comprise one ormore processor-based systems (e.g., web servers) operable to provideprepaid postage account and postage indicia generation services (e.g.,to generate postage indicia, shipping labels, etc. acceptable by theUSPS and/or other shipping service providers). For example, serversystem 232 may comprise one or more server of the online postage serviceoffered by Stamps.com Inc., or other third party service providers(e.g., postage service providers, pack and ship service providers,shipping insurance service providers, etc.). Various individuals(shippers, purchasers, etc.) and/or other entities (e.g., businessentities, merchants, etc.) may maintain an account with respect toserver system 232 facilitating the generation of postage indicia,whether individually, in batch, in combination with other documentation(e.g., shipping labels, bills of lading, manifests, customs documents,etc.), and whether directly by the account holder or indirectly, such byoperation of a shipping management system of cloud-based application111. Prepaid value associated with such accounts may be stored by, or inassociation with, the postage system, such as within a postage securitydevice (PSD). Additional or alternative information may be stored by, orin association with, the postage system, such as user credentialsutilized in validating users for account access, usage logs foraccounting and/or fraud prevention/detection, rating information for usein shipping service rate determinations, etc.

A shipping service provider system configuration of server system 233may comprise one or more processor-based systems (e.g., web servers)operable to provide functionality with respect to shipping servicesprovided by a shipping service provider. For example, server system 233may comprise one or more server associated with the USPS providing aninterface for accessing tracking data with respect to shipments made viaUSPS provided shipping services. Accordingly, various individuals(shippers, intended recipients, etc.) and/or other entities (e.g.,businesses, merchants, etc.) may utilize tracking numbers and/or otherinformation to access shipment tracking information throughout theshipment of items by the shipping service provider.

Functionality in addition to or in the alternative to the aforementionedpostage generation services provided by server system 232 and theaforementioned shipment tracking services provided by server system 233may be provided by these and/or one or more other systems of system 200(not shown), according to embodiments. For example, functionality may beprovided by one or more servers (e.g., manufacturers' systems,distributors' systems, product database systems, etc.) to provideinformation relevant to shipping various items (e.g., weight informationused to determine shipping service rates, item content information usedto determine shipping services available for use with respect toparticular items, such as in the case of hazardous materials, packagesize information used to determine shipping service rates and/orcompatibility with respect to particular items, etc.). It should beappreciated that the functionality provided by various servers and/orother systems of the cloud environment of system 200 of embodiments isnot limited functionality directly related to the management of theshipment of items. For example, one or more servers may be present inthe cloud environment which are operable to provide online electroniccommerce sites (e.g., online merchant stores), electronic marketplaces(e.g., eBay and Amazon Marketplace), etc. (collectively referred toherein as commerce channels) Multiple such commerce channel sites may bein communication with a shipping management system configuration ofcloud-based application 211 of embodiments, thereby providing amulti-channel shipping management platform.

Storage 234 shown in the illustrated embodiment disposed in the cloudenvironment of network 210 may, for example, comprise various forms oftangible, non-transitory computer readable media. For example, storage234 of embodiments may comprise random access memory (RAM), read onlymemory (ROM), flash memory, disk memory, magnetic memory, opticalmemory, etc. Storage 234 may comprise a storage array or other storagesystem, such as a redundant array of independent disks (RAID) array, astorage area network (SAN), a network attached storage (NAS) array,and/or the like. Such computer readable storage may be utilized to storevarious information, including program code of cloud-based application211, program code of client applications utilized with respect tocloud-based application 211, server system 232, and/or server system233, data utilized by and/or with any or all of cloud-based application211, server system 232, server system 233, and their clientapplications, etc. Portions of storage 234 may comprise a part of one ormore systems of the cloud (e.g., server system 232 and/or server system233) and/or may be separate from such systems (e.g., provided as anindependent database system).

From the foregoing it can be appreciated that user devices 220A-220D,server system 232, and/or server system 233 of embodiments compriseprocessor-based systems operating under control of one or moreinstruction set (e.g., software, firmware, applet, etc.) to provideoperation as described herein. Such processor-based systems may comprisea central processing unit (CPU) (e.g., a processor from the PENTIUM orCORE line of processors available from Intel Corporation), memory (e.g.,random access memory (RAM), read only memory (ROM), flash memory, diskmemory, optical memory, etc.) storing the aforementioned one or moreinstruction set and/or other data used herein, and appropriateinput/output circuitry and devices (e.g., network interface card (NIC),keyboard, digital pointer, display screen, peripheral interface,microphone, speaker, wireless interface, etc.).

Various peripherals and other computing resources useful in providingfunctionality available through operation of system 200 may be coupledto or otherwise in communication with user devices of embodiments. Forexample, computing resources, such as one or more printer (e.g., thermalprinter, ink printer, laser printer, etc.), imaging device (e.g.,optical scanner, barcode scanner, handheld scanner, camera, biometricsample scanner, etc.), scale (e.g., electronic scale, digital scale),memory device (e.g., optical disk drive, hard disk drive, solid statedisk drive, etc.), and/or the like, may be provided for use with any orall of the foregoing processor-based systems according to embodimentsherein. Computing resources 230A and 230B, shown in the illustratedembodiment as printers (e.g., printer for printing proof of paymentindicia, bills of lading, manifests, receipts, shipping labels, etc.)are shown as being coupled to user devices 220A and 220B, respectively.Similarly, computing resource 230C, shown as a scale (e.g., anelectronic scale for weighing items for shipping), and computingresource 230D, shown as an imaging device (e.g., a scanner for obtainingimages of shipping items, for scanning barcodes, for scanning addressesor other shipping item information, etc.), are shown as being coupled touser device 220A of the illustrated embodiment. Of course,configurations and deployments of computing resources different thanthat shown may be utilized according to embodiments of the invention.

User device 220A may, for example, be configured for use by a merchantor other shipper to operate with an electronic commerce or marketplacesystem of the cloud environment to offer items for sale and/or withshipping management system of cloud-based application 211 for managingorders of such items, outbound shipments of the items of such orders,and return of items by purchasers or other recipients thereof. Forexample, user device 220A may be configured to operate with a shippingmanagement system implementation of cloud-based application 211 toimport orders from a plurality of marketplace systems of a multi-channel(e.g., Amazon.com, eBay, etc.) ecommerce environment, convert the orderdata to a unified format for facilitating shipping managementfunctionality of the shipping management system, and provide shippingmanagement control, reporting, and operation under control of a user.Accordingly, the illustrated embodiment of user device 220A includes anumber of computing resources 230A, 230C, and 230D, as may be utilizedin facilitating such functionality. Correspondingly, user device 220Bmay, for example, be configured for use by a purchaser or otheracquirer/recipient of an item to operate with an electronic commerce ormarketplace system of the cloud environment to purchase items and/orwith shipping management system of cloud-based application 211 forrequesting and processing return shipment of various purchased orotherwise acquired items. Accordingly, the illustrated embodiment ofuser device 220B includes computing resource 230B, as may be utilized infacilitating such functionality. User device 220C of the illustratedembodiment comprises a tablet device having a processor, memory, andinput/output useful to enable interaction with an electronic commerce ormarketplace system of the cloud environment and/or shipping managementsystem of cloud-based application 211, according to embodiments herein.User device 220D of the illustrated embodiment comprises a smartphonehaving a processor, memory, and input/output useful to enableinteraction with an electronic commerce or marketplace system of thecloud environment and/or shipping management system of cloud-basedapplication 211, according to embodiments herein. Such user deviceconfigurations may be particularly well suited for use by purchasers orother recipients of items in an electronic commerce marketplace cloudenvironment. Of course, any or all such user devices may likewise beutilized by a merchant or other shipper in such an electronic commercemarketplace cloud environment. Additionally, any or all such userdevices may comprise or otherwise be in communication with any number ofcomputing resources, as may or may not be utilized through operation ofvarious embodiments herein.

Although, in a cloud-based application configuration, a cloud-basedapplication generally does not have direct access to computing resourcescoupled to the various user devices, system 200 of the illustratedembodiment is adapted according to concepts of the present invention tofacilitate access to computing resources 230A-230D by cloud-basedapplication 211. Accordingly, system 200 of embodiments of the inventionenables cloud-based application 211 to provide output to and/or obtaininput from any or all of computing resources 230A-230D for performingvarious tasks associated with the functionality provided by thecloud-based application.

For example, in a shipping management system embodiment of cloud-basedapplication 211, a merchant or other shipper may be enabled to generateshipping labels (e.g., having prepaid postage indicia thereon) and/orother documentation related to the order and/or shipment thereof, suchas utilizing computing resources 230A and/or 230B. Accounts maintainedwith respect to a postage system embodiment of server system 232 byvarious individuals (shippers, purchasers, etc.) and/or other entities(e.g., business entities, merchants, etc.) may be utilized to facilitatesuch generation of postage indicia, whether individually, in batch, incombination with other documentation (e.g., shipping labels, bills oflading, manifests, customs documents, etc.), whether directly by theaccount holder or indirectly, by operation of the shipping managementsystem of embodiments. Generation of such shipping documentation maycomprise input of various information regarding the item being shipped(e.g., the weight of the item, such as using a scale computing resourcesuch as computing resource 230C, hazardous material disclosures or otherinformation relevant to the shipment of the item, such as using ascanner computing resource such as computing resource 230D), regardingthe recipient and/or shipper of the item (e.g., the origination and/ordestination address, such as using a scanner computing resource such ascomputing resource 230D), etc. Additional information (e.g., usercredentials, as may include biometric information scanned using ascanner computing resource such as computing resource 230D) stored by,or in association with, a shipping management system and/or postagesystem, may be utilized in facilitating the generation of postageindicia and/or other shipment documents. System 200 of embodiments ofthe invention enables cloud-based application 211 to provide output toand/or obtain input from any or all of computing resources 230A-230D forperforming various tasks associated with the foregoing shippingmanagement system functionality.

As a further example of shipping management system functionality whichmay implicate the use of various computing resources, such as computingresources 230A-230D, the shipping service provider, the shipper, therecipient, and/or others may utilize information regarding the progressof an item through the mail stream for various purposes, includingmanagement, monitoring, and tracking of the shipment. For example, auser (e.g., purchaser of the shipped item, merchant shipping the item,etc.) may use a scanner computing resource, such as computing resource230D, to scan a tracking number, such as from shipping documentation.Such tracking number information may be utilized to identify therelevant entry or entries within a shipping service provider systemembodiment of server system 233 for the shipped item. Using suchtracking numbers, a user may be provided information regarding the lastrecorded status of the shipment as it progresses through the mailstream. Various reports regarding the status of the shipment(s) may begenerated and printed, such as using a printing computing resource suchas computing resources 230A and/or 230B.

As shown in the illustration of FIG. 2B, user devices 220 (e.g., userdevices 220A-220D) of system 200 comprise one or more clientapplications for interacting with cloud-based application 211 to provideoperation as described herein. For example, user devices 220 maycomprise user interface client application 221 operable to facilitateuser interaction with cloud-based application 211. User interface clientapplication 221 may comprise a web browser (e.g., INTERNET EXPLORER,GOOGLE CHROME, or FIREFOX) hosting a cloud client application or appletassociated with cloud-based application 211 and operable within the webbrowser. For example, a user may interact with cloud-based application211 via cloud client application 221A executing within user interfaceclient application 221. Continuing with the above example of a shippingmanagement system, the user may provide input to control cloud-basedapplication 211 to perform functions such as managing item orders,managing the picking and packing of items for order fulfillment,generating invoices, packing slips, manifests, shipping labels, and/orpostage indicia, and/or tracking shipment of items using cloud clientapplication 221A executing within user interface client application 221.However, such cloud client applications executing within a userinterface client application generally does not have direct access tocomputing resource 230 coupled to or otherwise in communication withuser device 220. Accordingly, tasks involving the providing of data fromcloud-based application 211 to computing resource 230 (e.g., printing,storing data, etc.) or obtaining data by cloud-based application 211from computing resource 230 (e.g., scanning, weighing, reading data,etc.) generally require multiple steps in order to invoke operations ofthe host user interface client application or cannot be performed. Forexample, such access may allow a cloud-based application to output datato be printed to a user device printer, to place data into and/or obtaindata from a clipboard or other memory of a user device (e.g., trackingnumbers, customer address data, lists of data for pasting into aspreadsheet application, etc.), to issue commands (e.g., reset orfeature selections) to a user device and/or user device peripherals incommunication therewith, etc. Similarly, such access may allow acloud-based application to obtain data from an imaging device such as toread a barcode or optically scan data, to take “screen shots” of a userdevice screen, to obtain diagnostic information (e.g., operating systemversion information and/or configuration, screen size information,installed virus protection software information, firewall settings,etc.) from a user device and/or user device peripherals in communicationtherewith, etc. Of course, any or all such access may be performed atthe request or control of a user, according to embodiments.

User devices 220 may, therefore, comprise user agent client application222 operable to facilitate access to computing resource 230 (e.g., anyor all of computing resources 230A-230D) by cloud-based application 211.In operation according to embodiments, user agent client application 222(embodiments of which are referred to herein as a “Connect Workstation”)comprises an application which is separate from user interface clientapplication 221 and which is executed by user device 220 to implementlocalized access to computing resource 230. Utilizing such localizedaccess to computing resource 230, user agent client application 222 mayinteract with cloud-based application 211 and/or cloud clientapplication 221A to enable the cloud-based application to output toand/or obtain input from one or more of the computing resource.Accordingly, embodiments of the invention provide a localizedapplication in the form of user agent client application 222 that hasdirect or localized access to computing resources, to directlycommunicate with and control the operation of those resources, wherebythrough cooperation of the localized application and cloud-basedapplication the cloud-based application is enabled to access and utilizethe computing resources.

FIG. 3 shows an implementation wherein a user agent client applicationis implemented as a Connect Workstation. It should be appreciated that,although a single instance of Connect Workstation 322 is shown in theillustrated embodiment, any number of such Connect Workstations may beinstalled according to embodiments. For example, multiple instances ofthe Connect Workstation may be installed upon a same host system (e.g.,user device 220A), such as to facilitate operation as described hereinwith respect to a number of different cloud-based applications, a numberof different computing resources, etc. For example, one or moreinstances of the Connect Workstation may be installed to providecomputing resource access (e.g., printing, scanning, data storage, etc.)to a plurality of cloud-based applications providing different services,such as shipping management services, postage indicia generationservices, word processing services, accounting services, communicationservices, calendaring services, etc. Additionally or alternatively,instances of the Connect Workstation may be installed upon a pluralityof host systems (e.g., any or all of user devices 220A-220D), such as tofacilitate operation as described herein with respect to a number ofdifferent computing resources, a number of different cloud-basedapplications, etc. Similarly, it should be appreciated that, although asingle instance of computing resource 230 is shown in the illustratedembodiment, any number of such computing resources may be provided withrespect to system 200 and/or any particular user device thereof.

Connect Workstation 322 of embodiments provides a relatively smalllocalized application that has direct or local access to computingresource 230, to directly communicate with and control the operation ofthat resource. Although embodiments of Connect Workstation provide alocalized deployment of an application, disadvantages typicallyassociated with the deployment and maintenance of such localizedapplications may be avoided or mitigated by configurations of theConnect Workstation according to embodiments. As discussed above, anadvantage of a cloud-based deployment is realized in the user or otheruser entity not having to obtain and maintain computing equipment (e.g.,processor capability, memory capacity, etc.) sufficient to store andexecute the localized application(s). However, in the case ofembodiments of the Connect Workstation, the application is small andrequires relatively little in the way of processing resources. Thus,most any user device having capabilities sufficient to utilize a userinterface client application and cloud client application will likelyalready have sufficient capabilities to accommodate the ConnectWorkstation.

In operation according to embodiments, communication is provided betweenthe cloud client applications of system 200 (e.g., cloud clientapplications 221A-1 and 221A-2) and cloud-based application 211 usinginter-process communication flows anchored with network sockets (e.g.,Internet sockets based on the Berkeley sockets standard) at therespective cloud client applications and cloud-based application.Accordingly communication links 301 and 302 of the illustratedembodiment may comprise socket pairs facilitating secure inter-processcommunications. The cloud client application may, for example, initiateand establish an open channel (e.g., comprising a communication link ofcommunication links 301 and 302) with cloud-based application 211,whereby messages can be sent from the cloud client application or thecloud-based application at any time. The user and/or cloud clientapplication may be authenticated, such as by operation of authenticationmodule 312 using various user name/account and password credentials,biometric credentials, digital signature credentials, cryptographic keycredentials, etc., in order to verify the user and/or cloud clientapplication's authorization to access the cloud-based application and/orfunctions thereof, to establish the secure channel, etc. Operation ofthe channel may be managed, such as by operation of channel managementmodule 313, to maintain/terminate the channel as appropriate, to controlcommunications transmitted via the channel, etc.

A plurality of the aforementioned channels may be bundled to provide agrouped channel, such as to facilitate interaction and functionality fora number of affiliated users (e.g., employees of a same company, membersof a family, etc.). For example, authentication module 312 may identifyparticular users and/or cloud client applications as being associatedwith a same group and thus provide grouping of the channels providedthereto, such as represented by channel group 300. The communicationsprovided via the various channels of the channel group may comprisevarious directives or notifications for implementing functionality ofthe cloud-based application by or on behalf of the affiliated usersthereof.

Connect Workstation 322 of embodiments of the invention initiates andestablish an open channel (e.g., comprising a communication link 303)with cloud-based application 211, whereby messages can be sent from theConnect Workstation or the cloud-based application at any time. TheConnect Workstation may be authenticated, such as by operation ofauthentication module 312, and likewise may be associated with aparticular channel group. For example, communication link 303 forConnect Workstation 322 may be grouped with one or more communicationlinks for cloud client applications (e.g., communication links 301 and302), such as represented by channel group 300. Channel managementmodule 313 may operate to arbitrate communications transmitted via achannel of the channel group to direct the appropriate communications toanother channel of the channel group, thereby providing virtualcommunication links between various ones of the client applications(examples of such virtual communication links being shown as virtualcommunication links 304 and 305).

Although embodiments of Connect Workstation provide a localizeddeployment of an application, disadvantages typically associated withthe deployment and maintenance of such localized applications may beavoided or mitigated using the aforementioned open channel. As discussedabove, an advantage of a cloud-based deployment is realized in the usersof a cloud-based application not having the burden of managing andmonitoring the lifecycle of the application, such as to obtain andinstall updates in order to maintain the functionality and compatibilityof the application. Embodiments of a Connect Workstation herein utilizethe aforementioned open channel to facilitate server initiated messagingto manage the lifecycle of the Connect Workstation application. Forexample, as cloud-based application 211 is updated, possible renderingit incompatible with or otherwise non-optimal for use with ConnectWorkstation 322, commands may be provided using the open channel ofcommunication link 303 to appropriately patch and/or update the ConnectWorkstation.

It should be appreciated that, although channel group 300 of theillustrated embodiment shows a plurality of instances of cloud clientapplications (possibly associated with the same or different users) anda single instance of a Connect Workstation as members of the group, achannel group utilized for facilitating cloud-based application resourceaccess according to embodiments of the present invention may include anynumber of members so long as at least one Connect Workstation isprovided a channel to the cloud-based application. For example, a singleinstance of a cloud client application and a single instance of aConnect Workstation associated as members of a channel group may beutilized to initiate cloud-based application access with respect to acomputing resource. Additionally, a plurality of instances of ConnectWorkstations may be utilized to provide access to a variety of computingresources, such as may be disposed at different physical locationsand/or which may comprise different computing resourcetypes/configurations. It should further be appreciated that, althoughthe illustrated embodiment of channel group 300 shows communicationlinks with a single cloud-based application, any number of cloud-basedapplications may be provided communication by a channel group ofembodiments, wherein each such cloud-based application may be enabled toaccess some or all of the computing resources associated with thatchannel group.

FIG. 4 shows an embodiment of flow 400 representing operation of system200 implementing Connect Workstation 322 to provide cooperation withcloud-based application 211 and enable access to and utilization ofcomputing resource 230 according to embodiments of the invention. Atblock 401 of the illustrated embodiment Connect Workstation 322 isinstalled and configured. For example, the program code for ConnectWorkstation 322 may be downloaded from network 210 by user device 220Aand installed in memory thereof.

Connect Workstation 322 is preferably configured at block 401 forassociation with one or more appropriate channel groups. For example,having installed Connect Workstation 322 upon user device 220A, a userthereof may provide their credentials (such as by a login dialog boxpresented by a user interface of the Connect Workstation installationutility) for cloud-based application 211 to enable Connect Workstation322 to establish communication link 303 with cloud-based application 211and to associate a channel thereof with channel group 300 to which cloudclient application 221A-1 utilized by the user is also associated. Theinstalled instance of Connect Workstation may be associated with theuser, and thus instances of the user's cloud client application,automatically, such as through the use of the aforementioned user'scredentials during installation/configuration of the ConnectWorkstation. For example, having provided valid user credentials duringinstallation, a unique identifier for the Connect Workstation (e.g.,workstation ID) may be associated with the particular user by thecloud-based application. Thus, when the user accesses the cloud-basedapplication through a cloud client application executing in a userinterface client application, the Connect Workstation and computingresources in communication therewith may be automatically associatedwith, and preferably available to, the user. Moreover, the ConnectWorkstation may be associated with the user by the cloud-basedapplication, such as for delivery of messages and/or otherfunctionality, even when the user is not logged into the cloud-basedapplication through a cloud client application.

Because Connect Workstation 322 of embodiments facilitates access tocomputing resources, such computing resources 230, configuration ofConnect Workstation 322 at block 401 may additionally or alternativelyinclude configuration for management of access to computing resourceswhich are in communication with the Connect Workstation. Suchconfiguration may enable/disable access to particular computingresources through Connection Workstation, enable/disable sharing ofparticular computing resources through Connection Workstation, etc. Forexample, user device 220A may have a plurality of printers coupledthereto, wherein a subset thereof is to be provided access by ConnectWorkstation according to the concepts herein. Accordingly, havinginstalled Connect Workstation 322 upon user device 220A, a user thereofmay select/deselect (such as by radio button or checkbox within a dialogbox presented by a user interface of the Connect Workstationconfiguration utility) particular ones of the plurality of printers tothereby make selected printers, but not deselected printers, availablefor access to cloud-based application 211. Similarly, the user mayselect/deselect particular ones of the plurality of printers to therebyshare selected printers, but not deselected printers, with other usersof the channel group. Accordingly, access of the computing resourceprovided by the Connect Workstation of embodiments may be by or onbehalf of various users and/or instances of cloud client applications.Additionally or alternatively, a user may select or otherwise provideconfiguration information with respect to the computing resources, suchas to establish default ways in which computing resources are accessed,identify or select particular computing resources preferred or to bemade available with respect to particular tasks, etc. Although theforegoing example has been made with reference to printers, suchconfiguration operations may be implemented with respect to anyconfiguration and/or combination of computing resources.

At block 402 of the illustrated embodiment, Connect Workstation 322 isexecuted to provide operation as described herein. In operationaccording to embodiments, Connect Workstation 322 comprises aterminate-and-stay-resident (TSR) configuration (e.g., a programexecuting in the tool tray of MICROSOFT WINDOWS) which is operable as abackground process providing operation as described herein. Throughcooperation of the Connect Workstation and the cloud-based application,cloud-based application 211 is enabled to access and utilize computingresource 230.

Embodiments of the invention preferably implement real-time memberawareness with respect to channel group 300, wherein both ConnectWorkstations and cloud client applications are considered as members ofthe channel group when associated therewith. Accordingly, as ConnectWorkstation 322 comes online or is otherwise initialized (e.g., afterhaving established the channel and joined the channel group) the ConnectWorkstation's pretences is announced to the other members of the channelgroup. For example, Connect Workstation 322 may broadcast a messageproviding information useful for implementing computing resource accessaccording to the concepts herein. In accordance with an embodiment ofthe invention, Connect Workstation 322 broadcasts a member awarenessmessage including the host system's identification (e.g., the userdevice computer or terminal name, such as JIM-LAPTOP-1) and/or ConnectWorkstation's identification (e.g., a unique or substantially uniqueidentification string, such as CD05E0F2-5FF1-45CD-BB41-ADD8C56754AA). Itshould be appreciated that substantially unique, as used herein,comprises information or other item which is unique in the context ofthe operation described, although perhaps not unique in the universe atlarge. The member awareness message broadcast by Connect Workstation 322of embodiments may additionally include a list of computing resources(e.g., printers, scanners, scales, memory devices, etc.) that have beenconfigured as enabled or shared, preferably including informationregarding the particular computing resources (e.g., indicating whethersharing is enabled for the computing resource, indicating a currentoperating state of the computing resource, providing informationregarding a configuration of the computing resource, providinginformation regarding features of a computing resource, providing aname, model, and/or version of a computing resource, etc.). Accordingly,all members of the channel group, or at least all cloud clientapplications of the channel group of embodiments of the invention, maybe made aware of the existence and availability of the ConnectWorkstation and/or the computing resources thereof.

It should be appreciated that member awareness messages may be broadcastaccording to embodiments of the invention at times other than when aConnect Workstation comes online or is otherwise initialized. Forexample, the forgoing member awareness message, or some portion thereof,may be broadcast to provide updated information. In operation accordingto embodiments, in order to provide real-time computing resourceavailability and/or status information, member awareness messages may bebroadcast by a Connect Workstation as computing resources thereof aretaken offline or are placed online. Likewise, member awareness messagesmay be broadcast by a Connect Workstation as the Connect Workstationitself is taken offline. Such update member awareness messages maycomprise less information than the above described member awarenessmessages, such as to include only updated information, information formembers having updated information, etc.

Member awareness messages may be communicated by means other than bybroadcast according to embodiments of the invention. Member awarenessmessages of embodiments herein may be direct messaged or multi-cast inappropriate situations. For example, cloud client applications may comeonline quietly, without announcing their presence to the channel groupdespite their having joined the channel group. The joining of thechannel group by such a cloud client application may be subsequent to aConnect Workstation coming online and broadcasting its member awarenessmessages. Accordingly, Connect Workstations of embodiments monitoractivity with respect to the channel group and/or interact with channelgroup control functionality (e.g., authentication module 312 and/orchannel management 313) to detect the arrival of other members, such ascloud client applications. In accordance with some embodiments, suchchannel group control functionality may provide signaling to makemembers aware of when a new member joins and/or leaves the channelgroup. In operation according to embodiments, such Connect Workstationsproactively transmit a direct message to the newly joined member, tothereby provide a member awareness message to the newly joined memberwhich was not present for the broadcast member awareness message.

In operation according to embodiments of the invention, a registry iskept of members of the channel group and their status to therebyfacilitate members determining the status of other members at any time.For example, each Connect Workstation and/or each cloud clientapplication may keep a registry of all Connect Workstations and/or allcloud client applications which are currently part of the channel group.Such a registry may be generated and maintained using the aforementionedmember awareness messages. Using such a registry, a cloud clientapplication, Connect Workstation, and/or cloud-based application, aswell as users thereof, can immediately detect changes in other member'spresence and can respond accordingly.

At block 403 of the embodiment illustrated in FIG. 4, a cloud clientapplication is employed to interact with the cloud-based application forperforming desired functionality. Staying with the foregoing example ofshipping management operation, a user may utilize cloud clientapplication 221A-1 to interact with cloud-based application 211 andinvoke various desired shipping management functionality. Where suchfunctionality employs the use of computing resource 230, such as forprinting a shipping label or other document, cloud client application221A-1 may provide command messages to cloud-based application 211 viacommunication link 301 to cause cloud-based application 211 to perform aparticular task associated with the desired functionality, such as togenerate a shipping label. For example, in operation according to theillustrated embodiment, if, while employing the cloud clientapplication, it is determined that a task employs access to a computingresource for which the cloud-based application is not itself providedcontrol at block 404, processing proceeds to block 405 for operation toemploy the appropriate Connect Workstation to access the desiredcomputing resource. Where, however, no such computing resource isemployed by the task, processing by block 404 returns to bock 403 forcontinued performance of the desired functionality.

At block 405 of the illustrated embodiment, cloud client application221A-1 may provide one or more command messages to perform a particulartask associated with the desired functionality, which employs operationof computing resource 230, such as to print the shipping label. Forexample, interaction with cloud-based application 211 which initiates atask employing a computing resource for which the cloud-basedapplication does not otherwise have control of, may result in a dialogbox being presented by cloud client application 221A-1 for selection ofa particular resource of the computing resources available throughchannel group 300, such as may be populated using the aforementionedregistry maintained by the cloud client application. This information,perhaps as well as other information collected from the user and/oravailable to the cloud client application, may be utilized to generate acommand message (e.g., a print control message in the present example).Because cloud-based application 211 is not itself provided control ofcomputing resource 230, the aforementioned command for printing isprovided to Connect Workstation 322 which is provided control ofcomputing resource 230. For example, using virtual communication link304, cloud client application 221A-1 may provide a print command messageto Connect Workstation 322.

In operation according to embodiments, the command messages provided bya cloud client application to a Connect Workstation for implementingaccess to a computing resource includes information describing thedesired operation. For example, the command message may includeidentification of the computing resource for which access is desired,the particular access or operation desired, data for facilitating theaccess or operation, etc. Such information may be provided by the userand/or may be collected or provided automatically, such as by the cloudclient application, the cloud-based application, and/or the ConnectWorkstation. For example, a user may provide default configurationinformation to cloud-based application 211 in association with theuser's account, such that the default configuration information isavailable when that user accesses the cloud-based application. Thisdefault configuration information may include information regarding apreference of computing resources or computing resource type to be usedwith respect to particular tasks, the configuration of the computingresources, how the status of particular tasks are to be reported, etc.When initiating a task which accesses a computing resource, the defaultconfiguration information may be accessed to populate appropriateinformation within a command message. Of course, the user may beprovided a dialog box or other means by which any or all suchinformation being applied to a particular task may be changed, whetherpermanently or on an instance by instance basis.

Continuing with the foregoing shipping label example of the shippingmanagement operation, the print command message may identify the printerto be used, the print file(s) generated and stored by the cloud-basedapplication to be printed (e.g., the document descriptor(s)), and theidentity of the user and/or cloud client application requesting theaccess. This information may be utilized to select the appropriatecomputing resource, the appropriate data for the printing operation, andto determine if the user or cloud client application is authorized toinvoke access to the computing resource. Assuming that the computingresource is appropriate for the requested task and the user/cloud clientapplication is authorized to utilize the computing resource, ConnectWorkstation 322 of embodiments may use the information in the commandmessage to communicate with cloud-based application 211 and obtain anelectronic copy of the document(s) (e.g., one or more shipping labels)to be printed and to identify the particular computing resource (e.g.,the particular printer) to be utilized for the printing operation. Whenobtaining the electronic copy of the document(s) or otherwisecommunicating with the cloud-based application for implementing accessto a computing resource, the Connect Workstation may provide informationregarding the particular computing resource selected (e.g., informationregarding the computing resource included in the command message, orsome portion thereof, or which is otherwise available to the ConnectWorkstation) to the cloud-based application, such as to facilitateformatting of the electronic document for printing (e.g., to provideappropriate page format, compatible print file, aspect ratio, dataformat, etc.) or otherwise providing processing to facilitate thedesired access of the selected computing resource.

The command message may comprise additional or alternative information.The additional or alternative information included in a command messagemay comprise information such as information to configure the computingresource for the desired access action, to facilitate communications andcontrol between the cloud client application and Connect Workstation,and/or the like. For example, the command message is preferably part ofa dialog between the cloud client application and the ConnectWorkstation. Accordingly, the command message may include unique orsubstantially unique dialog identification information (e.g., a requestidentifier) to be included in messages of the dialog for facilitatingidentification of the messages with the particular dialog. As anexample, after having provided the print command message to the ConnectWorkstation, the cloud client application may receive anacknowledgement/negative-acknowledgement (e.g., pass/fail response)message from the Connect Workstation indicating that the print commandhas been received and whether the requested action is to be attempted onbehalf of the cloud client application. Assuming the action isattempted, one or more status message may be communicated by the ConnectWorkstation to the cloud client application, such as to provideinformation regarding the interim status of the action and/or to providenotification of the successful or unsuccessful termination of theaction.

Having received the aforementioned command message, and assuming theidentified computing resource is online and properly accessible by or onbehalf of cloud client application 221A-1, operation at block 405preferably implements the desired access, such as to result in theprinting of the shipping label by computing resource 230 (comprising aprinter in this example). Thus, Connect Workstation 322 of embodimentsmay operate to arbitrate access to computing resource 230 by cloud-basedapplication 211. It should be appreciated that operation according toembodiments provides for communication of data (e.g., print documents,scan files, scale data, etc.) to/from computing resource 230 betweencloud-based application 211 and Connect Workstation 322 withouttransmission to user interface client application 221-1 or anintermediate server (e.g., a cloud print server). Moreover, ConnectWorkstation 322 of embodiments is configured to utilize data which isoptimized for the operation of cloud-based application functionality,such as to use zebra programming language (APL) page descriptionlanguage files which are highly efficient with respect to labelingapplications. Additionally, the access to computing resource 230 appearsto the user of cloud client application 221A-1 as having been initiatedand controlled in accordance with operation of a localized applicationrather than a cloud-based application.

Embodiments implementing configurations of a Connect Workstation asdescribed above not only facilitate operation whereby a cloud-basedapplication is enabled to provide output to and/or obtain input fromcomputing resources, but also facilitate remote access to and/or sharingof various computing resources. For example, a user of computingresource 230 need not be utilizing cloud client application 221A-1executing on user device 220A local to the computing resource in orderto access computing resource 230. The user may instead be utilizingcloud client application 221A-1 executing on user device 220D, as may bedisposed remotely with respect to user device 220A hosting computingresource 230. Utilizing the channel group as discussed above, operationof cloud client application 221A-2 would be essentially as describedabove for cloud client application 221A-1, except that virtualcommunication link 305 would be utilized for command and controlmessages between cloud client application 221A-2 and Connect Workstation322. Not only does such a configuration facilitate remote access to thecomputing resource by the user, but also allows the user to utilize userdevices which otherwise are not capable of supporting the use of thecomputing resource. For example, user device 220D may comprise a smartphone which itself does not directly support access to computingresource 230. Nevertheless, the user may invoke the cooperation of cloudclient application 221A-2 and Connect Workstation 322 to accesscomputing resource 230 in performing one or more tasks for thefunctionality of cloud-based application 211. Users might, for example,use such robust access to the computing resources to facilitate theiruse of highly portable user devices (e.g., smart phones, PDAs, and/ortablet devices) to utilize the cloud-based application “in the field.”Continuing with the above example of shipping management operation, auser utilizing a tablet device may walk the floor of a fulfillmentwarehouse, interacting with shipping management functionality of thecloud-based application to update order fulfillment records and printassociated documents, such as packing slips, bills of lading, shippinglabels, etc.

Similarly, the access to computing resource 230 provided by the ConnectWorkstation of embodiments is not limited to a particular user havingownership or possession of the computing resource. For example, userdevice 220D may be utilized by a user which, although not the owner orpossessor of computing resource 230, is nevertheless a member of thechannel group (e.g., employee of a same company or member of the samefamily as the owner or possessor of computing resource 230).Accordingly, assuming that the computing resource 230 was selected forsharing in configuration of Connect Workstation 322 and that the userand/or cloud client application 221A-2 is otherwise authorized to accesscomputing resource 230, cloud client application 221A-2 may be providedshared access to computing resource 230. Such embodiments may beutilized to provide a companywide network of computing resources whichare made available to authorized users, irrespective of the physicallocations of the computing resources and/or the particular user devicesutilized by a user.

It should be appreciated that the access to computing devices providedaccording to embodiments of the invention is not limited to accessdirectly associated with performing tasks of the cloud-based applicationfunctionality. For example, embodiments implementing configurations of aConnect Workstation as described above facilitate operation wherebysupport personnel may be provided robust remote access to computingresources, such as for diagnostic and troubleshooting purposes. Byjoining a channel group of which a Connect Workstation in communicationwith a particular computing resource is a member, such support personnelmay utilize a support application, having functionality similar to thatof a cloud client application for communicating with the ConnectWorkstation, to control access to the particular computing resource,such as to determine an operational state, currently implementedconfiguration parameters, to communication command and controlinstructions to the computing resource, etc. Additionally oralternatively, such support personnel may utilize such a supportapplication to obtain various data, such as capturing “screen shots”from the user's device, to facilitate an understanding of the operationthe user is experiencing and to enable efficient diagnostics and problemresolution. Thus, such support personnel may (e.g., with the consent andpermission of the user) avoid engaging a user to interact with aproblematic computing resource and relay information with respectthereto.

As can be appreciated from the foregoing, although embodiments implementa user interface client application and associated cloud clientapplication which is separate from the Connect Workstation, tightintegration between a cloud client application and Connect Workstationis provided according to embodiments. Thus, a user may be providedcontrol of various computing resources, whether disposed locally orremotely with respect to the user, through the cloud client applicationand associated cloud-based application using the aforementionedcommunication with the Connect Workstation. Additionally oralternatively, a user may be provided information regarding the variouscomputing resources of one or more channel group, such as theavailability and/or operational state of a resource (e.g.,online/offline, requires attention, toner low, paper jam, etc.), thestatus of a task (e.g., printing in process/complete, scanning inprocess/complete, etc.), and/or the like.

Embodiments of the invention which implement a user interface clientapplication and associated cloud client application which is separatefrom the Connect Workstation provide advantages in the separate,possibly continued, operation of the Connect Workstation. For example, auser may not continually utilized the cloud client application to accessthe corresponding cloud-based application or may otherwise experienceperiods of not being logged into the cloud-based application. However,embodiments of the separate Connect Workstation operating as abackground task may nevertheless remain connected to the cloud-basedapplication and thus in communication therewith, such as to receiveupdate messages, alerts, initiate operation of the cloud clientapplication, etc. Continuing with the foregoing example of shippingmanagement functionality, the cloud-based shipping managementapplication may send out general messages regarding the client's accountfrom time to time. A user of the channel may not be logged into thecloud-based shipping management application when such messages aretransmitted and thus, without operation of an embodiment of the ConnectWorkstation, would not see the notifications of these events. An exampleof such an event notification is when the cloud-based shippingmanagement application automatically (and intermittently) imports ordersto a client's account from their external selling platform (e.g.,Amazon.com, eBay.com, etc.). When this occurs, the cloud-based shippingmanagement application may operate to send out a notification to theclient's channel that “X new orders were just imported to the shippingmanagement application.” Since the Connect Workstation of embodiments isactively running in the background of a user's device, and since theConnect Workstation is actively listening in on the group channel, theConnect Workstation can show a notification on the user's device (e.g.,present a dialog box on a computer desktop). Such message presentationmay be in addition to or in the alternative to any messaging that may beprovided by the cloud client application (should it also be operatingand logged in at a time of the message transmission). For many smallerentities that do not spend extended periods of time logged into acloud-based application, the forgoing operation facilitates their beingnotified instantly when new orders are imported (or a similar noteworthyevent occurs for their account). In operation according to embodiments,a user may click on the notification to open their browser to the cloudclient application. This means that such users are alleviated of a needto intermittently log into the cloud-based application throughout theday to check for new activity.

Although the present invention and its advantages have been described indetail, it should be understood that various changes, substitutions andalterations can be made herein without departing from the spirit andscope of the invention as defined by the appended claims. Moreover, thescope of the present application is not intended to be limited to theparticular embodiments of the process, machine, manufacture, compositionof matter, means, methods and steps described in the specification. Asone of ordinary skill in the art will readily appreciate from thedisclosure of the present invention, processes, machines, manufacture,compositions of matter, means, methods, or steps, presently existing orlater to be developed that perform substantially the same function orachieve substantially the same result as the corresponding embodimentsdescribed herein may be utilized according to the present invention.Accordingly, the appended claims are intended to include within theirscope such processes, machines, manufacture, compositions of matter,means, methods, or steps.

What is claimed is:
 1. A method for providing cloud-based applicationaccess to one or more computing resources disposed in association with aclient terminal, the method comprising: establishing an open channelcommunication link between a cloud-based application and a user agentclient application associated with the client terminal, wherein the useragent client application is adapted to provide control of at least onecomputing resource of the one or more computing resources; and inresponse to invocation of functionality of the cloud-based applicationby a cloud client application hosted on a user client interfaceapplication of the client terminal, arbitrating access to a selectedcomputing resource of the at least one computing resource by thecloud-based application via the user agent client application based atleast in part on information transmitted via the open channelcommunication link, wherein the cloud client application is configuredto inhibit interaction with and control of the at least one computingresource by the cloud-based application, and wherein the arbitratingbypasses the user client interface application by: receiving, from thecloud client application, information associated with the invokedfunctionality of the cloud-based application, and transmitting, by thecloud-based application, one or more commands to the user agent clientapplication, the one or more commands configured to control access tothe selected computing resource via the open channel communication link.2. The method of claim 1, wherein the open channel communication linkcomprises a socket pair channel providing secure communication betweenthe user agent client application and the cloud-based application. 3.The method of claim 1, wherein the open channel communication link ispart of a channel group, wherein the channel group comprises a pluralityof associated open channel communication links between different nodesto the cloud-based application, and wherein intercommunication betweenthe different nodes is provided by the plurality of associated openchannel communication links of the channel group.
 4. The method of claim3, wherein the different nodes comprise the cloud client application,wherein the invoked functionality of the cloud-based applicationincludes initiating a task which employs the access to the selectedcomputing resource, and wherein the arbitrating access to the selectedcomputing resource by the cloud-based application via the user agentclient application is in response to the cloud client application havinginitiated the task which employs the access to the selected computingresource.
 5. The method of claim 4, wherein the different nodes furthercomprise a first and second instance of the user agent clientapplication, wherein the first instance of the user agent clientapplication is the user agent client application executing on the clientterminal, wherein the second instance of the user agent clientapplication has a different computing resource associated therewith, andwherein the method comprises: selecting the selected computing resourcefrom a group of computing resources for which cloud-based applicationaccess is provided, wherein the group of computing resources includes atleast the selected computing resource and the different computingresource.
 6. The method of claim 1, further comprising: receivingpresence information that identifies the at least one computing resourceof the one or more computing resources for which control by thecloud-based application is provided via the user agent clientapplication.
 7. The method of claim 6, further comprising: detectingchanges with respect to the at least one computing resource of the oneor more computing resources based on the presence information.
 8. Themethod of claim 1, wherein the invoked functionality of the cloud-basedapplication comprises functionality to generate postage indicia withrespect to mail items, and wherein the information associated with theinvoked functionality of the cloud-based application comprises mail iteminformation associated with a mail item, the method further comprising:generating, by the cloud-based application, postage indicium data forthe mail item based on the mail item information, wherein the selectedcomputing resource comprises a printer, and wherein the one or morecommands transmitted to the user agent client application are configuredto control access to the printer with respect to printing a postageindicium based on the postage indicium data.
 9. The method of claim 1,wherein the selected computing resource comprises a scale, and whereinthe method comprises obtaining, by the cloud-based application, a weightof an item from the scale via the arbitrated access provided via theuser agent client application.
 10. The method of claim 1, wherein theselected computing resource comprises a scanner, and wherein the methodcomprises obtaining, by the cloud-based application, information scannedfrom an item via the arbitrated access provided via the user agentclient application.
 11. The method of claim 1, wherein the cloud-basedapplication comprises a shipping management system, and wherein thearbitrated access to the selected computing resource provided via theuser agent client application comprises functionality for management ofshipment of an item by the shipping management system.
 12. The method ofclaim 11, wherein the selected computing resource comprises a printer,and wherein the method comprises printing a shipping label to thecomputing resource by the shipping management system via the arbitratedaccess provided by the user agent client application, the shipping labelcomprising a value bearing indicium generated by the shipping managementsystem in response to an electronic commerce transaction performed usingthe user agent client application.
 13. The method of claim 11, whereinthe shipping management system provides shipping managementfunctionality with respect to multiple shipping service providers,wherein the method comprises obtaining input from the selected computingresource via the arbitrated access provided by the user agent clientapplication and providing the input obtained from the selected computingresource to a respective system of any shipping service provider of themultiple shipping service providers.
 14. The method of claim 11, whereinthe shipping management system provides shipping managementfunctionality with respect to multiple shipping service providers,wherein the method comprises outputting data to the selected computingresource via the arbitrated access provided by the user agent clientapplication, and wherein the shipping management functionalityfacilitates providing the output to the selected computing resource by arespective system of any shipping service provider of the multipleshipping service providers.
 15. The method of claim 11, wherein theshipping management system provides shipping management functionalitywith respect to multiple commerce channels, wherein the method comprisesobtaining input from the selected computing resource via the arbitratedaccess provided by the user agent client application, wherein theshipping management functionality facilitates providing the inputobtained from the selected computing resource to a respective system ofany commerce channel of the multiple commerce channels.
 16. The methodof claim 11, wherein the shipping management system provides shippingmanagement functionality with respect to multiple commerce channels,wherein the method comprises obtaining input from the selected computingresource via the arbitrated access provided by the user agent clientapplication, wherein the shipping management functionality facilitatesproviding the input obtained from the selected computing resource to arespective system of any commerce channel of the multiple commercechannels.
 17. A non-transitory computer-readable storage medium storinginstructions that, when executed by one or more processors, cause theone or more processors to perform operations for providing cloud-basedapplication access to one or more computing resources disposed inassociation with a client terminal, the operations comprising:establishing an open channel communication link between a cloud-basedapplication and a user agent client application associated with theclient terminal, wherein the user agent client application is adapted toprovide control of at least one computing resource of the one or morecomputing resources; and in response to invocation of functionality ofthe cloud-based application by a cloud client application hosted on auser client interface application of the client terminal, arbitratingaccess to a selected computing resource of the at least one computingresource by the cloud-based application via the user agent clientapplication based at least in part on information transmitted via theopen channel communication link, wherein the cloud client application isconfigured to inhibit interaction with and control of the at least onecomputing resource by the cloud-based application, and wherein thearbitrating bypasses the user client interface application by:receiving, from the cloud client application, information associatedwith the invoked functionality of the cloud-based application, andtransmitting, by the cloud-based application, one or more commands tothe user agent client application, the one or more commands configuredto control access to the selected computing resource via the openchannel communication link.
 18. The non-transitory computer-readablestorage medium of claim 17, wherein the cloud-based applicationcomprises a shipping management system providing functionality formanagement of shipments of items, wherein the selected computingresource comprises a printer, and wherein the operations compriseprinting a shipping label to the selected computing resource by theshipping management system via the arbitrated access provided by theuser agent client application, the shipping label comprising a valuebearing indicium generated by the shipping management system in responseto an electronic commerce transaction performed using the user agentclient application.
 19. The non-transitory computer-readable storagemedium of claim 17, wherein the cloud-based application comprises ashipping management system that provides shipping managementfunctionality with respect to multiple shipping service providers, andwherein the one or more processors are configured to: obtain informationfrom the selected computing resource via the arbitrated access providedby the user agent client application; and provide the informationobtained from the selected computing resource to a respective system ofany shipping service provider of the multiple shipping serviceproviders.
 20. A system for providing cloud-based application access toone or more computing resources disposed in association with a clientterminal, the system comprising: a memory; and one or more processorscommunicatively coupled to the memory, the one or more processorsconfigured to: establish an open channel communication link between acloud-based application and a user agent client application associatedwith the client terminal, wherein the user agent client application isadapted to provide control of at least one computing resource of the oneor more computing resources; and in response to invocation offunctionality of the cloud-based application by a cloud clientapplication hosted on a user client interface application of the clientterminal, arbitrate access to a selected computing resource of the atleast one computing resource by the cloud-based application via the useragent client application based at least in part on informationtransmitted via the open channel communication link, wherein the cloudclient application is configured to inhibit interaction with and controlof the at least one computing resource by the cloud-based application,and wherein the arbitrated access bypasses the user client interfaceapplication through reception, by the cloud-based application, ofinformation associated with the invoked functionality of the cloud-basedapplication from the cloud client application and transmission, by thecloud-based application, of one or more commands to the user agentclient application, the one or more commands configured to controlaccess to the selected computing resource via the open channelcommunication link.